﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.Serialization;

/*
⑹ 应答上位机查询状态命令格式：温室发送
第01字节：帧头（3DH）
第02字节：帧长（1CH）
第03字节：ID（温室ID：1-40）
第04字节：光照低字节
第05字节：光照高字节
第06字节：温室温度低字节
第07字节：温室温度高字节
第08字节：温室水温低字节
第09字节：温室水温高字节
第0A字节：湿度1
第0B字节：湿度2
第0C字节：室内光照低字节
第0D字节：室内光照高字节
第0E字节：室内CO2低字节
第0F字节：室内CO2高字节
第10字节：土壤湿度
第11字节：1#拉幕位置（1-100%）
第12字节：2#拉幕位置（1-100%）
第13字节：1#通风窗位置（1-100%）
第14字节：2#通风窗位置（1-100%）
第15字节：风机（ACC.0:0-停止，1-打开）
第16字节：湿帘泵（ACC.0:0-停止，1-打开）
第17字节：灌溉加湿（ACC.0:0-关闭，1-打开）
第18字节：温室高温报警位（ACC.0:0-无警，1-有警）
第19字节：温室低温报警位（ACC.0:0-无警，1-有警）
第1A字节：温室高湿报警位（ACC.0:0-无警，1-有警）
第1B字节：温室低湿报警位（ACC.0:0-无警，1-有警）
           第1C字节：校验字节（0AAH）

**/

namespace ASoft.Msg
{
    [DataContract]
    [Msg(0x3D, 0x1C, 0xAA)]
    [RecordTypeAttribute(ERecordType.RoomReturnSearch)]
    [MsgVM]
    [MsgDB("RoomInfo")]
    public class RoomReturnSearchMsg : MsgBase
    {
        public RoomReturnSearchMsg() : base() { }
        public RoomReturnSearchMsg(Byte[] data) : base(data) { }
        [SP(0x03)]
        [MsgVM]
        [MsgDB]
        public byte Id { get; set; }

        [DP(0x04, 0x05)]
        [MsgVM]
        [MsgDB]
        public short 光照 { get; set; }

        [MsgVM]
        [MsgDB]
        public decimal 室内温度1
        {
            get
            {
                return AppUtility.TemperatureToDisplay(室内温度1EX);
            }
            set
            {
                室内温度1EX = AppUtility.TemperatureToReal(value);
            }
        }

        [DP(0x06, 0x07)]
        public short 室内温度1EX { get; set; }

        [MsgVM]
        [MsgDB]
        public decimal 室内温度2
        {
            get
            {
                return AppUtility.TemperatureToDisplay(室内温度2EX);
            }
            set
            {
                室内温度2EX = AppUtility.TemperatureToReal(value);
            }
        }

        [DP(0x08, 0x09)]
        public short 室内温度2EX { get; set; }

        [MsgVM]
        [MsgDB]
        public byte 湿度1
        {
            get
            {
                return 湿度1Ex;
                //return AppUtility.SoilMoistureToDisplay(湿度1Ex);
            }
            set
            {
                湿度1Ex = value;
                //湿度1Ex = AppUtility.SoilMoistureToReal(value);
            }
        }

        [SP(0x0A)]

        public byte 湿度1Ex { get; set; }


        [MsgVM]
        [MsgDB]
        public byte 湿度2
        {
            get
            {
                return 湿度2Ex;
                //return AppUtility.SoilMoistureToDisplay(湿度2Ex);
            }
            set
            {
                湿度2Ex = value;
                //湿度2Ex = AppUtility.SoilMoistureToReal(value);
            }
        }
        [SP(0x0B)]
        public byte 湿度2Ex { get; set; }

        //[DP(0x0C, 0x0D)]
        [SP(0x0C)]
        [MsgVM]
        [MsgDB]
        public byte 室内光照 { get; set; }

        [DP(0x0E, 0x0F)]
        [MsgVM]
        [MsgDB]
        public short 室内CO2 { get; set; }

        [MsgVM]
        [MsgDB]
        public byte 土壤湿度
        {
            get
            {
                return 土壤湿度Ex;
                //return AppUtility.SoilMoistureToDisplay(土壤湿度Ex);
            }
            set
            {
                土壤湿度Ex = value;
                //土壤湿度Ex = AppUtility.SoilMoistureToReal(value);
            }
        }
        [SP(0x10)]
        public byte 土壤湿度Ex { get; set; }

        [SP(0x11)]
        [MsgVM]
       
        public byte P1拉幕位置 { get; set; }

        [SP(0x12)]
        [MsgVM]
       
        public byte P2拉幕位置 { get; set; }

        [SP(0x13)]
        [MsgVM]
       
        public byte P1通风窗位置 { get; set; }

        [SP(0x14)]
        [MsgVM]
      
        public byte P2通风窗位置 { get; set; }

        [MsgVM]
        
        public byte 风机
        {
            get
            {
                return AppUtility.GetACC0(风机EX);
            }
        }

        [SP(0x15)]
        public byte 风机EX { get; set; }

        [MsgVM]
      
        public byte 湿帘泵
        {
            get
            {
                return AppUtility.GetACC0(湿帘泵EX);
            }
        }

        [SP(0x16)]
        public byte 湿帘泵EX { get; set; }


        [MsgVM]
       
        public byte 灌溉加湿
        {
            get
            {
                return AppUtility.GetACC0(灌溉加湿EX);
            }
        }

        [SP(0x17)]
        public byte 灌溉加湿EX { get; set; }

        [MsgVM]
        public byte 温室高温报警位
        {
            get
            {
                return AppUtility.GetACC0(温室高温报警位EX);
            }
        }

        [SP(0x18)]
        public byte 温室高温报警位EX { get; set; }

        [MsgVM]
        public byte 温室低温报警位
        {
            get
            {
                return AppUtility.GetACC0(温室低温报警位EX);
            }
        }

        [SP(0x19)]
        public byte 温室低温报警位EX { get; set; }

        [MsgVM]
        public byte 温室高湿报警位
        {
            get
            {
                return AppUtility.GetACC0(温室高湿报警位EX);
            }
        }


        [SP(0x1A)]
        public byte 温室高湿报警位EX { get; set; }

        [MsgVM]
        public byte 温室低湿报警位
        {
            get
            {
                return AppUtility.GetACC0(温室低湿报警位EX);
            }
        }

        [SP(0x1B)]
        public byte 温室低湿报警位EX { get; set; }

        [MsgVM]
        [MsgDB]
        public decimal Ph { get; set; }

        [MsgVM]
        [MsgDB]
        public int Ec { get; set; }


        public bool IsPhec { get { return false; } }

    }
}
